package py.com.alfa.escriba.gui.rest.services;

import java.io.IOException;
import java.util.List;

import py.com.alfa.escriba.gui.dto.IntercepcionLongDTO;
import py.com.alfa.escriba.gui.dto.admin.ClienteDTO;
import py.com.alfa.escriba.gui.dto.admin.ClienteInfoDTO;
import py.com.alfa.escriba.gui.dto.admin.DomicilioDTO;
import py.com.alfa.escriba.gui.dto.admin.EscribanosDTO;
import py.com.alfa.escriba.gui.dto.admin.PersonaDTO;
import py.com.alfa.escriba.gui.dto.admin.PersonaInfoDTO;
import py.com.alfa.escriba.gui.dto.admin.PersonaInfoParaControlDTO;
import py.com.alfa.escriba.gui.dto.admin.TelefonoDTO;
import py.com.alfa.escriba.gui.dto.query.PersonaQueryDTO;


public interface AdminService {
	final String SECURE_PATH = "/secure";
	final String BASE_URL = "/admin";

	final String LIST_CLIENTES  = SECURE_PATH.concat(BASE_URL.concat("/obtenerClientes"));
	final String GET_CLIENTE    = SECURE_PATH.concat(BASE_URL.concat("/obtenerCliente/{id}"));
	final String UPD_CLIENTE    = SECURE_PATH.concat(BASE_URL.concat("/actualizarCliente"));
	final String DEL_CLIENTE    = SECURE_PATH.concat(BASE_URL.concat("/eliminarCliente"));
	final String NEW_CLIENTE    = SECURE_PATH.concat(BASE_URL.concat("/crearCliente"));
	final String DEL_EMPLEO    = SECURE_PATH.concat(BASE_URL.concat("/eliminarEmpleoCliente"));
	final String NEW_EMPLEO    = SECURE_PATH.concat(BASE_URL.concat("/crearEmpleoCliente"));	
	final String UPD_TELEFONO   = SECURE_PATH.concat(BASE_URL.concat("/actualizarTelefono"));
	final String DEL_TELEFONO   = SECURE_PATH.concat(BASE_URL.concat("/eliminarTelefono"));
	final String NEW_TELEFONO   = SECURE_PATH.concat(BASE_URL.concat("/crearTelefono"));		
	final String UPD_DOMICILIO  = SECURE_PATH.concat(BASE_URL.concat("/actualizarDomicilio"));
	final String DEL_DOMICILIO  = SECURE_PATH.concat(BASE_URL.concat("/eliminarDomicilio"));
	final String NEW_DOMICILIO  = SECURE_PATH.concat(BASE_URL.concat("/crearDomicilio"));
	final String NEW_CLIENTEINFO  = SECURE_PATH.concat(BASE_URL.concat("/crearClienteInfo"));
	final String UPD_CLIENTEINFO  = SECURE_PATH.concat(BASE_URL.concat("/actualizarClienteInfo"));
	final String LIST_PERSONAS  = SECURE_PATH.concat(BASE_URL.concat("/obtenerPersonas"));
	final String GET_PERSONA    = SECURE_PATH.concat(BASE_URL.concat("/obtenerPersona/{id}"));
	final String CREA_PERSONA   = SECURE_PATH.concat(BASE_URL.concat("/crearPersona"));
	final String UPD_PERSONA    = SECURE_PATH.concat(BASE_URL.concat("/actualizarPersona"));
	final String DEL_PERSONA    = SECURE_PATH.concat(BASE_URL.concat("/eliminarPersona"));
	final String BUSCAR_PERSONA = SECURE_PATH.concat(BASE_URL.concat("/buscarPersonas"));
	final String PER_BY_PAIS_DOC = SECURE_PATH.concat(BASE_URL.concat("/byPaisDocumento"));
	final String NEW_PERSONAINFO = SECURE_PATH.concat(BASE_URL.concat("/crearPersonaInfo"));
	final String UPD_PERSONAINFO = SECURE_PATH.concat(BASE_URL.concat("/actualizarPersonaInfo"));
	final String GET_PERSONAINFO    = SECURE_PATH.concat(BASE_URL.concat("/obtenerPersonaInfo/{id}"));
	final String DEL_PERSONAINFO = SECURE_PATH.concat(BASE_URL.concat("/eliminarPersonaInfo"));
	final String NEW_ESCRIBANO = SECURE_PATH.concat(BASE_URL.concat("/crearEscribano"));	
	final String LIST_ESCRIBANOS = SECURE_PATH.concat(BASE_URL.concat("/obtenerEscribanos"));
	final String GET_ESCRIBANO = SECURE_PATH.concat(BASE_URL.concat("/obtenerEscribano/{id}"));
	
	public List<ClienteDTO> obtenerClientes() throws IOException;
	public ClienteInfoDTO   obtenerCliente(Long id) throws IOException;
	public void             actualizarCliente(ClienteDTO dto) throws IOException;
	public void             eliminarCliente(Long id) throws IOException;
	public void             crearCliente(ClienteDTO dto) throws IOException;
	public void             eliminarEmpleoCliente(IntercepcionLongDTO dto) throws IOException;
	public void             crearEmpleoCliente(IntercepcionLongDTO dto) throws IOException;
	public void             actualizarTelefono(TelefonoDTO dto) throws IOException;
	public void             eliminarTelefono(TelefonoDTO dto) throws IOException;
	public void             crearTelefono(TelefonoDTO dto) throws IOException;
	public void             actualizarDomicilio(DomicilioDTO dto) throws IOException;
	public void             eliminarDomicilio(Long id) throws IOException;
	public void             crearDomicilio(DomicilioDTO dto) throws IOException;	
	public ClienteInfoDTO   crearClienteInfo(ClienteInfoDTO dto) throws IOException;	
	public void             actualizarClienteInfo(ClienteInfoDTO dto) throws IOException;
	public PersonaInfoDTO crearPersonaInfo(PersonaInfoDTO dto) throws IOException;
	public void actualizarPersonaInfo(PersonaInfoDTO dto) throws IOException;
	public PersonaInfoDTO obtenerPersonaInfo(Long id) throws IOException;
	public PersonaDTO obtenerPersona(Long id) throws IOException;
	public List<PersonaDTO> obtenerPersonas(PersonaDTO dto) throws IOException;
	public PersonaDTO crearPersona(PersonaDTO dto) throws IOException;
	public void eliminarPersona(Long id) throws IOException;
	public List<PersonaInfoDTO> buscarPersonas(PersonaDTO dto) throws IOException;
	public PersonaInfoParaControlDTO getPersonaByPaisDocumento(PersonaQueryDTO values) throws IOException;
	public void eliminarPersonaInfo(Long id) throws IOException;
	public EscribanosDTO crearEscribano(EscribanosDTO dto) throws IOException;
	public List<EscribanosDTO> listEscribanos()throws IOException;
	public EscribanosDTO obtenerEscribano(Long id) throws IOException;

}
